package fachklassen;

import helper.BLError;
import helper.BLWarning;

import java.util.ArrayList;

import database.DatabaseManager;
/**
 * Fachklasse mit Gettern und Settern
 *
 * @author	Michael Wolf
 * @author	Tanja Goletz
 * @version	1.0
 */
public class Bildungsgang {
	int bildungsgangID;
	String bezeichnung;
	String kuerzel;
	ArrayList<BildungsgangFach> bildungsgangFaecher = null;
	ArrayList<Klasse> klassen = null;
	
	public int getBildungsgangID() {
		return bildungsgangID;
	}
	public void setBildungsgangID(int bildungsgangID) {
		this.bildungsgangID = bildungsgangID;
	}
	public String getBezeichnung() {
		return bezeichnung;
	}
	public void setBezeichnung(String bezeichnung) {
		this.bezeichnung = bezeichnung;
	}
	public String getKuerzel() {
		return kuerzel;
	}
	public void setKuerzel(String kuerzel) {
		this.kuerzel = kuerzel;
	}
	public ArrayList<BildungsgangFach> getBildungsgangFaecher() throws BLError, BLWarning {
		if (bildungsgangFaecher == null) {
			ArrayList<Object> elements = DatabaseManager.getInstance().getByAttribute(BildungsgangFach.class, "bildungsgangID", bildungsgangID);
			bildungsgangFaecher = new ArrayList<BildungsgangFach>();
			for (Object element : elements) {
				bildungsgangFaecher.add((BildungsgangFach)element);
			}
		}
		return bildungsgangFaecher;
	}
	public ArrayList<Klasse> getKlassen() throws BLError, BLWarning {
		if (klassen == null) {
			ArrayList<Object> elements = DatabaseManager.getInstance().getByAttribute(Klasse.class, "bildungsgangID", bildungsgangID);
			klassen = new ArrayList<Klasse>();
			for (Object element : elements) {
				klassen.add((Klasse)element);
			}
		}
		return klassen;
	}

	public String toString() {
		return this.getBezeichnung();
	}
}
